The present invention relates to a method for storing data about events in time, such as sales of a product, and in particular to a method of using database-objects to track large amounts of data associated with such events in an efficient manner.
Computer databases allow the storage and retrieval of data. The data may be linked in records holding data elements so that a particular data element may be identified or sorted based on other elements of its record.
Such electronic databases can be extremely useful in tracking business information particularly where the information can be easily fit into a small number of records with a limited number of data elements. For example, a physician might readily track patients, their addresses and insurance carriers using a record-type structure.
Some business data does not readily lend itself to the simple record structure. For example, it might be desirable to track a large number of attributes related to sales of product. The attributes of such sales events may include for example: the time of the sale, the product, the product components, the selling division, the customer purchasing agent, the buying enterprise, the location of the enterprise, the responsible sales and manufacturing units, and many others.
The importance of a sales event to a business enterprise makes it desirable for the number of attributes recorded not be unduly limited. The data of these attributes can be used for a variety of purposes including the coordination of different operations within the business, strategic planning and record keeping. On the other hand, the number of sales events in even a modest company can be extremely large. A conventional record structure in which one record is allocated to each sales event and one data element to each recorded attribute of each sales event, rapidly exhausts the storage capacity and power of conventional business computers.
The present inventors have recognized that xe2x80x9cdatabase-objectsxe2x80x9d being part of an object-oriented database, can provide for efficient storage of extremely large numbers of attributes associated with frequent events. Database-objects operate in some ways analogously to software objects, that is, they can inherit data and structure from other objects without the need to reproduce the data or structure. By breaking event data into groups of increasing intercorrelation (i.e. groups whose elements are relatively stable across events) through the use of database-objects, data storage requirements are much reduced and event data is easier to assemble.
For example, the extremely dynamic concept of a sales event can be assembled from the intersection of relatively static groupings data about products, customer and fulfillment of the sale. Each sales event can be an instance of a database-object template referencing instances of database-objects of product, customer and fulfillment. These underlying database-objects in turn can be further reduced to more stable database-objects, for example, the customer""s database-object can be assembled from data representing an enterprise, an agent and a location. The need for new instances of database-objects is reduced as the groupings of the objects become more stable, and the use of database-objects, which reference but do not duplicate data, makes the overall storage requirements low.
Specifically then the present invention provides a method of capturing xe2x80x9cevent dataxe2x80x9d of events over time using an object-oriented database having database-object templates that may reference attributes of the event data and other database-object templates that may be instantiated to create database-object instances referencing data of the attributes of the database-object templates and instances of the other database-object templates.
The method includes a first step of defining a set of underlying database-object templates each possibly referencing at least a portion of the attributes of the event data. In a second step, an event database-object template referencing at least a portion of the underlying database-objects templates is defined. Upon each event, having given event data, given ones of the set of underlying database-object templates referencing attributes of the given event data are instantiated. Finally, an event database-object template referencing the instanced given ones of the set of underlying database-object templates is referenced.
Thus it is one objective of the invention to provide a rapid method of capturing complex and variable event-type data. By defining database-objects in a hierarchical fashion, event database-objects, capturing the required data, can be easily defined by identifying a smaller number of underlying objects.
Intermediate database-objects may be positioned between the underlying database-objects and the event database-objects in a multi-layered hierarchy.
Thus it is another objective of the invention to leverage recorded data through multiple layers of database-objects further reducing storage requirements and simplifying recordation of event data.
Each progressive layer of database-objects is defined to reference attributes of increasing intercorrelation or increasingly intercorrelated database-objects over different events.
Thus it is another objective of the invention to minimize the burden of instantiating database-objects. The groupings provide some permanence to each instanced database-object while the layers of objects reduce the propagation of any changes in the data in the direction of the event database-object.
In one embodiment, the event database-object template may represent a sales event and be made up of:
(1) a customer database-object in turn referencing:
(a) a location database-object template referencing attributes indicating customer locations;
(b) an agent database-object template referencing attributes indicating customer agents;
(c) an enterprise database-object template referencing attributes indicating customer enterprises; and a
(2) a product database-object in turn referencing:
(a) a product information database-object template referencing attributes indicating product information;
(b) a product business database-object template referencing attributes indicating product business;
(c) a product design database-object template referencing attributes indicating product designs; and a
(3) a fulfillment database-object in turn referencing:
(a) a fulfillment logistics database-object template referencing attributes indicating fulfillment logistics;
(b) a fulfillment services database-object template referencing attributes indicating fulfillment services; and
(c) a fulfillment manufacturing support chain database-object template referencing attributes indicating fulfillment manufacturing support chain.
Thus it is another objective of the invention to provide a practical structure for recording sales events comprised of a complex set of underlying data.